被老師推薦看李宏毅老師的影片,今天看完第一部的第二刷就試著做個筆記。
原影片網址:https://www.youtube.com/watch?v=xCGidAeyS4M
當電腦要分析一個句子的時候,必須要把一個句子中的重點抓出來,在這個過程中需要將每個單字分門別類:名詞、動詞、形容詞、連接詞等,這時可以使用Neural Network抓出每個詞的詞性。
但在這之前要先確認我們要分析的句子要如何放進這個Network中,以影片中"I would like to arrive Taipei in Nov. 2nd."為例子來建構:
目的地:Taipei
抵達時間:Nov. 2nd
所以我們必須要將這些每個詞丟入特定slot中,而這時候可以將每個詞彙變成vector來儲存。
很直覺的把每個可能出現的字丟進去array裡面,如果有就在每個編號上紀錄,但如果某單字沒有被記錄在array的時候便歸類到"other"中。
將每個字會出現的組合紀錄。例如"arrive"這個詞中會出現"a-r-r", "r-r-i", "r-i-v", "i-v-e"這四個三元組合,只要在一個已經配好的array中將這四個特徵標記就可以還原出這個字,雖然沒辦法像1-of-N Encoding一樣完整對到,但依照英文字母與字母間的重複性應該可以將特色記錄下來並解省記憶體空間(此方法只需要用到26x26x26的記憶體)
但光是把每個字放進他該放的slot是不夠的。當我們在處理一個句子時,必須要了解我們是要從Taipei出發還是抵達Taipei,是在Nov. 2nd抵達還是在Nov. 2nd出發,這都會被一個句子的組成方式"arrive ... in ..."影響,這時候我必須要處理眼前這個詞彙的時候,記憶之前我所看到的東西再做出判斷才有可能判斷這些,而這個有記憶性的神經網路就被稱為"Recurrent Neurel Netowrk (RNN)"。